In cryptography, an S-box ( substitution-box) is a basic component of symmetric key algorithms which performs substitution. In , they are typically used to obscure the relationship between the key and the ciphertext, thus ensuring Claude Shannon property of confusion. Mathematically, an S-box is a nonlinear vectorial Boolean function.
In general, an S-box takes some number of input , m, and transforms them into some number of output bits, n, where n is not necessarily equal to m. An m× n S-box can be implemented as a lookup table with 2 m words of n bits each. Fixed tables are normally used, as in the Data Encryption Standard (DES), but in some the tables are generated dynamically from the key (e.g. the Blowfish and the Twofish encryption algorithms).
Given a 6-bit input, the 4-bit output is found by selecting the row using the outer two bits (the first and last bits), and the column using the inner four bits. For example, an input " 01101 1" has outer bits " 01" and inner bits "1101"; the corresponding output would be "1001".
The S-box design criteria were eventually published (in ) after the public rediscovery of differential cryptanalysis, showing that they had been carefully tuned to increase resistance against this specific attack such that it was no better than brute force. Biham and Shamir found that even small modifications to an S-box could significantly weaken DES. Gargiulo's "S-box Modifications and Their Effect in DES-like Encryption Systems" p. 9.
Any S-box where any linear combination of output bits is produced by a bent function of the input bits is termed a perfect S-box. RFC 4086. Section 5.3 "Using S-boxes for Mixing"
S-boxes can be analyzed using linear cryptanalysis and differential cryptanalysis in the form of a Linear approximation table (LAT) or Walsh transform and Difference Distribution Table (DDT) or autocorrelation table and spectrum. Its strength may be summarized by the nonlinearity (bent, almost bent) and differential uniformity (perfectly nonlinear, almost perfectly nonlinear).
|
|